const install = (Vue, vm) => {
	const throttle = (fn, delay, immediate = true)=>{
		let curTime = Date.now(),
				count = 0;
		
			return function() {
				let context = vm,
					args = arguments,
		
					nowTime = Date.now();
				if (immediate && !count) {
					count++
					return fn.apply(context, args);
		
				}
				count++;
				if (count === 10) {
					setTimeout(() => {
						count = 0
					}, 5000)
					return vm.$u.toast('点击过于频繁，请稍后再试');
				}
		
				//console.log(nowTime)
				// 如果两次时间间隔超过了指定时间，则执行函数。
				if (nowTime - curTime >= delay) {
		
					curTime = nowTime;
		
					//console.log(curTime)
					return fn.apply(context, args);
				}
			};
	}
	
	const isLogin=()=>{
		const token = vm.vuex_token
		if(!token) {
			//来自哪个页面
			const currentPage = getCurrentPages().pop()
			
			const {options,route} = currentPage
			const optionsKeys = Object.keys(options)
			let params = ''
			if(optionsKeys.length!==0){
				params = optionsKeys.reduce((pre,cur)=>{
					return pre+cur+'='+options[cur]+'&'
				},'?').slice(0,-1)
			}
			//缓存当前页，用于登录或注册之后的跳转
			uni.setStorageSync('back_url',route+params)
			
			vm.$u.toast('请登录')
			setTimeout(()=>{
				vm.$u.route({
					type:'redirect',
					url:'pages/auth/login'
				})
			},1500)
			return false
		}
		return true
	}
	vm.$u.utils={
		throttle,
		isLogin
	}
}
export default {
	install
}
// import vm from '../main.js'

// export function throttle(fn, delay, immediate = true) {
// 	let curTime = Date.now(),
// 		count = 0;

// 	return function() {
// 		let context = this,
// 			args = arguments,

// 			nowTime = Date.now();
// 		if (immediate && !count) {
// 			count++
// 			return fn.apply(context, args);

// 		}
// 		count++;
// 		if (count === 10) {
// 			setTimeout(() => {
// 				count = 0
// 			}, 5000)
// 			return vm.$u.toast('点击过于频繁，请稍后再试');
// 		}

// 		//console.log(nowTime)
// 		// 如果两次时间间隔超过了指定时间，则执行函数。
// 		if (nowTime - curTime >= delay) {

// 			curTime = nowTime;

// 			//console.log(curTime)
// 			return fn.apply(context, args);
// 		}
// 	};
// }
